# 作者：位微
# 你不是在写代码而是在解决问题
# 2025年09月17日09时54分35秒
# 2062873410@qq.com
import torch

a=torch.arange(0,16,1).view(4,4)
# print(a.clamp(1,10))# 裁剪，初步防止过拟合，权值衰减，
# 缩小解空间，有点类似超参数的寻找
# 定点化，用整型数存储浮点数
# 量化，将高精度浮点数映射为低精度的离散值，减小存储空间
# print(torch.where(a>10,10,a))# 三目运算符
print(a)
#返回(*index.shape[0],a.shape[1])
out=torch.index_select(a,dim=0,index=torch.tensor([1,2,3]))
print(out)
out=torch.gather(a,dim=0,index=torch.tensor([[0,1,1,1],[1,2,2,2],[2,2,2,2]]))
# dim=0 ,out[i,j,k]=input[index[i,j,k],j,k]
print(out)
print(out.shape)
mask=a>10
print(torch.masked_select(a,mask))# 转化成向量
print(torch.take(a,index=torch.tensor([0,2,15])))# 按照单个元素进行索引
have_zero=torch.tensor([[1,0,3,2],[0,0,2,3]])
print(torch.nonzero(have_zero))# 返回非零值得位置